package hot;

/**
 * @author lakersUp
 * @Classname
 * @Description
 * @Date 2022/4/4 11:28
 * @Version 1.0
 */
public class Hot581findUnsortedSubarray {
    public int findUnsortedSubarray(int[] nums){
        if(nums==null || nums.length<2){
            return 0;
        }
        int max=Integer.MIN_VALUE;
        int min=Integer.MAX_VALUE;
        int left=0,right=0;

        //从左往右定位右边界，这样可以避免边界重复带来的问题
        for(int i=0;i<nums.length;i++){
            if(max>nums[i]){
                right=i;
            }else {
                max=nums[i];
            }
        }

        //从右往左定义左边界
        for(int i=nums.length-1;i>=0;i--){
            if(min<nums[i]){
                left=i;
            }else {
                min=nums[i];
            }
        }

        return left==right?0:right-left+1;
    }
}
